Formally verified speculation and deoptimization in a JIT compiler
نویسندگان
چکیده
Just-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows specialization of program to the common case in order avoid unnecessary overheads due uncommon cases. This form software speculation requires support deoptimization when some fail hold. paper presents a model just-in-time compiler with an intermediate representation explicits synchronization points used and made by compiler's speculation. We also present several optimizations can leverage improved code. The are proved correct help proof assistant. While our work stops short proving native generation, we demonstrate how one could use verified optimization obtain significant speed ups end-to-end setting.
منابع مشابه
Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization
Speculative inlining in just-in-time compilers enables many performance optimizations. However, it also introduces significant complexity. The compiler optimizations themselves, as well as the deoptimization mechanism are complex and error prone. To stabilize our bytecode to bytecode just-in-time compiler, we designed a new approach to validate the correctness of dynamic deoptimization. The app...
متن کاملCompCert – A Formally Verified Optimizing Compiler
CompCert is the first commercially available optimizing compiler that is formally verified, using machineassisted mathematical proofs, to be exempt from miscompilation. The executable code it produces is proved to behave exactly as specified by the semantics of the source C program. This article gives an overview of the design of CompCert and its proof concept and then focuses on aspects releva...
متن کاملA Formally-Verified Alias Analysis
This paper reports on the formalization and proof of soundness, using the Coq proof assistant, of an alias analysis: a static analysis that approximates the flow of pointer values. The alias analysis considered is of the points-to kind and is intraprocedural, flow-sensitive, field-sensitive, and untyped. Its soundness proof follows the general style of abstract interpretation. The analysis is d...
متن کاملFormally Verified Modular Semantics
This chapter presents the results of the validation and verification of a crucial component of BOS, a large safety-critical system that decides when to close and open the Maeslantkering, a storm surge barrier near the city of Rotterdam in the Netherlands. BOS was specified in the formal language Z and model checking has been applied to some of its subsystems during its development. A lightweigh...
متن کاملFormally Verified System Initialisation
The safety and security of software systems depends on how they are initially configured. Manually writing program code that establishes such an initial configuration is a tedious and error-prone engineering process. In this paper we present an automatic and formally verified initialiser for component-based systems built on the general-purpose microkernel seL4. The construction principles of th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2021
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3434327